#!/bin/bash

# ROS工作空间重新编译和source脚本
# 使用方法: ./rebuild_ws.sh [工作空间路径，默认为当前目录]

# 设置默认工作空间路径为当前目录
WS_DIR=${1:-$(pwd)}

# 检查是否是有效的ROS工作空间
if [ ! -d "$WS_DIR/src" ]; then
    echo "错误: $WS_DIR 不是一个有效的ROS工作空间 (缺少src目录)"
    exit 1
fi

echo "正在处理ROS工作空间: $WS_DIR"

# 检查是否已source ROS环境
if [ -z "$ROS_DISTRO" ]; then
    echo "警告: ROS环境未source，尝试自动source..."
    source /opt/ros/noetic/setup.bash  # 根据你的ROS版本修改(noetic/melodic等)
fi

# 进入工作空间目录
cd "$WS_DIR" || exit 1

# 清理之前的编译
echo "清理之前的编译..."
rm -rf devel/ build/ 2>/dev/null

# 重新编译
echo "开始编译工作空间..."
if ! catkin_make -j1; then
    echo "编译失败!"
    exit 1
fi

# source新的环境
echo "source新的环境..."
source devel/setup.bash

echo "工作空间 $WS_DIR 重新编译并source完成!"

